package com.geline.web.util;

import com.geline.web.enums.FileTypeExtension;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;

import java.util.Arrays;
import java.util.List;

/**
 * 文件类型检验工具
 *
 * @author mengxin
 * @date 2025/3/31
 */
@Slf4j
public class FileValidationUtils {

    private static final List<String> AllowFiles = Arrays.asList("txt,svg,bz2,csv,json,keytab,conf,webp,log,shp,kml,gml,geojson,qgs,mif,tab,dbf,prj".split(","));

    public static void validateFile(MultipartFile file) {
        //检验已知文件后缀的字节码是否匹配
        FileTypeExtension.validateMultipartFile(file);

        //检验允许上传的文件后缀（不检验字节码）
        String extension = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
        if(AllowFiles.contains(extension)){
            log.info("{} : 允许上传文件，且不检验类型!", file.getOriginalFilename());
        }else {
            throw new IllegalArgumentException("上传文件类型不支持！");
        }
    }
}
